#pragma once
#include <string>
#include "Piece.h"

namespace Cards {
	class Card
	{
	protected:
		std::string title;
		std::string description;
		Card(std::string title, std::string description);

	public:
		virtual std::string getTypeName() = 0;
		std::string getTitle();
	};

	class PlayerCard: public Card
	{
		BoardItems::PlayerPiece* piece;

	public:
		PlayerCard(std::string title, std::string description, BoardItems::PlayerPiece* piece);
		virtual std::string getTypeName();
		BoardItems::PlayerPiece* getPiece();
	};

	class WeaponCard: public Card
	{
		BoardItems::WeaponPiece* piece;

	public:
		WeaponCard(std::string title, std::string description, BoardItems::WeaponPiece* piece);
		virtual std::string getTypeName();
	};

	class RoomCard: public Card
	{
	public:
		BoardItems::Room* room;

		RoomCard(std::string title, std::string description, BoardItems::Room* room);
		virtual std::string getTypeName();
	};

}
